<?php
namespace Admin\Controller;

use Hdphp\Controller\Controller;

//商品控制器
class GoodsController extends CommonController {

	private $model;

	//	构造函数
	public function __init() {
		//		父级的构造函数
		parent::__init();

		$this -> model = new \Common\Model\goods;
	}

	//显示商品
	public function index() {

		//		获得商品数据库里的全部数据
		$goodsModel = $this -> model -> get();
		//		p($goodsModel);

		View::with('goodsModel', $goodsModel);

		View::make();
	}

	//添加商品
	public function add() {

		//		判断有没有提交
		if (IS_POST) {

			//			p($_POST);
			//			多传图片    要把提交上来的图片数据（数组）组合成以 ， 号隔开的字符串   再把他赋回去
//					p($_POST);
//					exit;
			$_POST['satlas'] = implode(',', Q('post.satlas', array()));
			//				判断能不能通过自动验证
			if (!$this->model->store())
				View::error($this->model->getError());
			//			成功提示并跳转
			View::success('添加成功', U('index'));
		}

		//		实例化分类表
		$cateModel = new \Common\Model\Cate;

		//		获得全部分类
		$cateModel = Data::tree($cateModel -> get(), 'cname', 'cid');
		//		p($cateModel);

		//		实例化品牌表
		$brandModel = new \Common\Model\Brand;
		//		获得全部品牌
		$brandModel = $brandModel -> get();
		//		p($brandModel);

		//		分配分类数据   分类
		View::with('cateModel', $cateModel);
		//		品牌
		View::with('brandModel', $brandModel);

		View::make();
	}

	//删除商品
	public function del() {

		//		获得要删除商品的id
		$gid = Q('get.gid', 0, 'intval');
		//		p($gid);
		//								删除商品属性表
		//实例化商品属性表
		$dityModel = new \Common\Model\Dity;
		//因为提交上来的数据有存到商品属性表里面的   所以删除的时候也要把商品属性表里面的提交进去的数据也要同时删了
		$dityModel = $dityModel -> where("goods_gid={$gid}") -> delete();
		//		p($dityModel);

		//								删除商品详情表
		//实例化商品详情表
		$detaModel = new \Common\Model\Sdeta;
		//因为提交上来的数据有存到商品详情表里面的   所以删除的时候也要把商品详情表里面的提交进去的数据也要同时删了
		$detaModel = $detaModel -> where("goods_gid={$gid}") -> delete();
		//		p($detaModel);
		//

		//								删除商品表

		$this -> model -> where("gid={$gid}") -> delete();

		//				成功提示
		View::success('删除成功', U('index'));

	}






	//	ajxa异步       函数

	public function getTypeAttr() {

		$tid = Q('post.tid', 0, 'intval');

		//		类型属性表
		$attrModel = new \Common\Model\Attr;

		$attrModel = $attrModel -> where("type_taid={$tid}") -> get();
		//		p($attrModel);
		//		循环属性类型表里面的数据、
		foreach ($attrModel as $k => $v) {
			//			把Attr数据库里面的thattr字段的值拆分开   拆分一个一个的字符串  [这里也要注意下用的什么符号分割 的   区分大小写]
			$attrModel[$k]['thattr'] = explode(',', $v['thattr']);
			//		p($attrModel);
		}

		//		把获得数据编译成  ajax格式的数据   并发送出去  这样添加页面的ajax就能接收到了
		echo json_encode($attrModel);

	}
	
	
	

	//uploadify异步上传列表图片
	public function Image() {
		$file = Upload::path('Upload/Content/list/' . date('y/m')) -> make();
		if (empty($file)) {
			$this -> ajax(Upload::getError());
		} else {
			/** $file内部就是以下这个数组
			 $file = array(
			 0 => array(
			 'path' => 'Upload/Content/15/8/123981239172.jpg'    ,
			 'url' => 'http://localhost/cms_edu/Upload/Content/15/8/123981239172.jpg',
			 'image' => 1
			 ),
			 );**/
			//上传成功，把上传好的信息返给js
			$data = $file[0];
			echo json_encode($data);
			exit ;
		}
	}
	
	
	
	

	//uploadify异步上传商品图册图片
	public function Images() {
		$file = Upload::path('Upload/Content/atlas/' . date('y/m')) -> make();
		if (empty($file)) {
			$this -> ajax(Upload::getError());
		} else {
			/** $file内部就是以下这个数组
			 $file = array(
			 0 => array(
			 'path' => 'Upload/Content/15/8/123981239172.jpg'    ,
			 'url' => 'http://localhost/cms_edu/Upload/Content/15/8/123981239172.jpg',
			 'image' => 1
			 ),
			 );**/
			//上传成功，把上传好的信息返给js
			$data = $file[0];
			echo json_encode($data);
			exit ;
		}
	}
	
	
	
	
	

	//	编辑商品

	public function edit() {

		//------------------**************获得旧数据*************---------------------------

//				p(Q('post.'));
		//		获得要修改的商品id
		$gid = Q('get.gid', 0, 'intval');
		$type_taid = Q('get.type_taid', 0, 'intval');


		if (IS_POST) {
			
			if($_POST['satlas'] != null){
				
//			把提交上来的图册组合成字符串
				$_POST['satlas'] = implode(',', $_POST['satlas']);
			}
			if (!$this -> model -> edits())
			View::error($this -> model -> getError());

//			exit;
			View::success('修改成功', U('index'));
		}
		//--------------------------------------------------------实例化分类表
		$cateModel = new \Common\Model\Cate;
		//		获得所有分类表里的全部数据
		$cateModels = Data::tree($cateModel -> get(), 'cname', 'cid');
		//		p($cateModel);
		//		分配分组数据
		View::with('cateModel', $cateModels);

		$cateModels = $cateModel -> where("type_taid={$type_taid}") -> get();

		//		p($cateModels);

		//--------------------------------------------------------实例化品牌表

		$brandModel = new \Common\Model\Brand;
		//		获得品牌表里面的全部数据
		$brandModel = $brandModel -> get();
		//		p($brandModel);
		View::with('brandModel', $brandModel);

		//--------------------------------------------------------类型属性表和商品属性表关联

		$dityModel = new \Common\Model\Dity;
		//				类型属性表和商品属性表关联然后找他们里面和商品表关联id一样的数据
		$dityAttr = $dityModel -> join('attr', 'thid', '=', 'attr_thid') -> where("goods_gid={$gid}") -> get();
//				p($dityAttr);
				
				
//				把获得的规格分组
		$specs = $dityModel -> join('attr', 'thid', '=', 'attr_thid') -> where("goods_gid={$gid} AND class=1")->groupBy("thname")->get();
//		p($specs);
//			把分好的数组循环   得到他们的id
			foreach ($specs as $v) {
//				再把他赋给一个空数组
				$id[] = $v['did'];
			}
//		p($id);
		View::with('id',$id);

		
		//				循环获得的数据
		foreach ($dityAttr as $k => $v) {
			//			把类型属性变里面的类型拆分开
			$dityAttr[$k]['thattr'] = explode(',', $v['thattr']);
		}
//			p($dityAttr);
		
		
		View::with('dityAttr', $dityAttr);

		//--------------------------------------------------------商品表和商品详情表关联

		$goodsModel = $this -> model -> join('Sdeta', 'gid', '=', 'goods_gid') -> where("gid={$gid}") -> find();

		//		把多传的图片拆分了
		$goodsModel['satlas'] = explode(',', $goodsModel['satlas']);
		//		p($goodsModel);
		
		View::with('goodsModel', $goodsModel);

		View::make();
	}

}
?>